home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)tq.d64
/
xmon.inst.d
(
.txt
)
< prev
Wrap
Commodore BASIC
|
2007-02-04
|
9KB
|
245 lines
10 POKE53280,0:POKE53281,0:PRINTCHR$(14)"[147][149][215][197][204][195][207][205][197][160][212][207]:"
20 PRINT"[176][192][192][192][192][192][192][192][192][192][192][192][192][174]"
30 PRINT"[221][146][216][212][210][193]-[205][207][206] 64 [149][221]"
40 PRINT"[221][146][201][206][211][212][210][213][195][212][201][207][206][211][149][221]"
50 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][189]"
60 PRINT"[193] [208]UBLIC [196]OMAIN"
70 PRINT"[205]ACHINE [204]ANGUAGE"
80 PRINT"[205]ONITOR"
90 PRINT"[208][210][197][211][211] [193][206][217] [203][197][217] [212][207] [195][207][206][212][201][206][213][197]"
100 GETW$:IFW$=""THEN100
110 POKE646,5:PRINTCHR$(14)
120 PRINT"[147][207]UTPUT TO S[146]CREEN OR P[146]RINTER: ";
130 OPEN6,0:INPUT#6,A$:CLOSE6
140 IFA$<>"S"ANDA$<>"P"THENRUN
150 IFA$="P"THENOPEN1,4,7:DV=4:FORQ=1TO6:PRINT#1:NEXT:GOTO170
160 OPEN1,3:DV=3
170 PRINT"[147]"
180 PRINT#1," [197][216][212][210][193][205][207][206][160][201][206][211][212][210][213][195][212][201][207][206][211] "
190 PRINT#1:PRINT#1:PRINT#1," [197][216][212][210][193][205][207][206] IS ONE OF THE MOST COMMON ";
200 PRINT#1,"OF THE PUBLIC DOMAIN MACHINE LANGUAGE ";
210 PRINT#1,"MONITORS AROUND. [201]T IS ONE OF THE BEST ";
220 PRINT#1,"AS WELL. [200]ERE IS A BRIEF DESCRIPTION ";
230 PRINT#1,"OF ITS FEATURES.":PRINT#1
240 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
250 IFDV=3THENGETA$:IFA$=""THEN250
260 IFDV=3THENPRINT"[147]"
270 PRINT#1,"[211]IMPLE [193]SSEMBLER"
280 PRINT#1
290 PRINT#1,".[193] 2000 [193]9 12 [204][196][193] #$12"
300 PRINT#1,".[193] 2002 9D 00 80 [211][212][193] $8000,X"
310 PRINT#1,".[193] 2005"
320 PRINT#1:PRINT#1," [201]N THE ABOVE EXAMPLE, THE USER BEGAN ";
330 PRINT#1,"ASSEMBLY AT $2000. [212]HE FIRST INSTRUC- ";
340 PRINT#1,"TION WAS LOAD ACCUMULATOR IMMEDIATE ";
350 PRINT#1,"WITH $12. [201]N THE SECOND LINE THE USER ";
360 PRINT#1,"DID NOT NEED TO TYPE THE [193] AND ADDRESS. ";
370 PRINT#1,"[212]HE SIMPLE ASSEMBLER RETYPED THE LAST ";
380 PRINT#1,"ENTERED LINE AND PROMPTS WITH THE NEXT ";
390 PRINT#1,"ADDRESS. [212]O EXIT THE ASSEMBLER, PRESS ";
400 PRINT#1,"[[210][197][212][213][210][206]] AFTER THE ADDRESS PROMPT. ";
410 PRINT#1,"[211]YNTAX IS THE SAME AS THE DISSASEMBLER ";
420 PRINT#1,"OUTPUT. [193] ':' CAN BE USED TO TERMINATE ";
430 PRINT#1,"A LINE.":PRINT#1
440 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
450 IFDV=3THENGETA$:IFA$=""THEN450
460 IFDV=3THENPRINT"[147]"
470 PRINT#1,"[195]OMPARE [205]EMORY":PRINT#1
480 PRINT#1,".[195] 1000 2000 [195]000":PRINT#1
490 PRINT#1," [195]OMPARES MEMORY FROM $1000 TO $2000 ";
500 PRINT#1,"TO MEMORY BEGINNING AT $[195]000. [195]OMPARE ";
510 PRINT#1,"WILL PRINT THE LOCATIONS OF UNEQUAL ";
520 PRINT#1,"BYTES.":PRINT#1
530 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
540 IFDV=3THENGETA$:IFA$=""THEN540
550 IFDV=3THENPRINT"[147]"
560 PRINT#1,"[196]ISSEMBLER":PRINT#1
570 PRINT#1,".[196] 2000":PRINT#1
580 PRINT#1," [196]ISASSEMBLES TO THE END OF MEMORY ";
590 PRINT#1,"STARTING AT $1000. [212]HE THREE BYTES ";
600 PRINT#1,"FOLLOWING THE ADDRESS MAY BE MODIFIED. ";
610 PRINT#1,"[213]SE THE [CRSR] KEYS TO MOVE TO AND ";
620 PRINT#1,"MODIFY THE BYTES. [200]IT [[210][197][212][213][210][206]] AND THE ";
630 PRINT#1,"BYTES IN MEMORY WILL BE CHANGED. ";
640 PRINT#1,"[197][216][212][210][193][205][207][206] WILL THEN DISSASEMBLE THAT ";
650 PRINT#1,"LINE AGAIN.":PRINT#1
660 PRINT#1,".[196] 2000 3000":PRINT#1
670 PRINT#1," [196]ISASSEMBLES FROM $2000 TO $3000.":PRINT#1
680 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
690 IFDV=3THENGETA$:IFA$=""THEN690
700 IFDV=3THENPRINT"[147]"
710 PRINT#1,"[198]ILL [205]EMORY":PRINT#1
720 PRINT#1,".[198] 1000 1100 [198][198]":PRINT#1
730 PRINT#1," [198]ILLS THE MEMORY FROM $1000 TO $1100 ";
740 PRINT#1,"WITH THE BYTE $[198][198].":PRINT#1
750 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
760 IFDV=3THENGETA$:IFA$=""THEN760
770 IFDV=3THENPRINT"[147]"
780 PRINT#1,"[199]O [210]UN":PRINT#1
790 PRINT#1,".[199]":PRINT#1
800 PRINT#1," [199]O TO THE ADDRESS IN THE [208][195] REGISTER ";
810 PRINT#1,"DISPLAY AND EXECUTE CODE. [193]LL THE ";
820 PRINT#1,"REGISTERS WILL BE REPLACED WITH THE ";
830 PRINT#1,"DISPLAYED VALUES.":PRINT#1
840 PRINT#1,".[199] 1000":PRINT#1
850 PRINT#1," [199]O TO ADDRESS $1000 AND BEGIN ";
860 PRINT#1,"RUNNING CODE.":PRINT#1
870 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
880 IFDV=3THENGETA$:IFA$=""THEN880
890 IFDV=3THENPRINT"[147]"
900 IFDV=4THENFORQ=1TO6:PRINT#1:NEXT
910 PRINT#1,"[200]UNT [205]EMORY":PRINT#1
920 PRINT#1,".[200] [195]000 [196]000 '[210][197][193][196]":PRINT#1
930 PRINT#1," [200]UNT THROUGH MEMORY FROM $[195]000 TO ";
940 PRINT#1,"$[196]000 FOR THE [193][211][195][201][201] STRING '[210][197][193][196]' AND ";
950 PRINT#1,"PRINT THE ADDRESSES WHERE IT IS FOUND. ";
960 PRINT#1,"[193] MAXIMUM OF 32 CHARACTERS MAY BE USED.":PRINT#1
970 PRINT#1,".[200] [195]000 [196]000 20 [196]2 [198][196]":PRINT#1
980 PRINT#1," [200]UNT MUMORY FROM $[195]000 TO $[196]000 FOR ";
990 PRINT#1,"THE SEQUENCE OF BYTES $20, $[196]2, $[198][196] AND ";
1000 PRINT#1,"PRINT ANY ADDRESS WHERE IT IS FOUND. [193] ";
1010 PRINT#1,"MAXIMUM OF 32 BYTES MAY BE USED. [200]UNT ";
1020 PRINT#1,"CAN BE STOPPED WITH THE [[210][213][206]/[211][212][207][208]] KEY.":PRINT#1
1030 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1040 IFDV=3THENGETA$:IFA$=""THEN1040
1050 IFDV=3THENPRINT"[147]"
1060 PRINT#1,"[201]NTEREGATE [205]EMORY":PRINT#1
1070 PRINT#1,".[201] [198]000":PRINT#1
1080 PRINT#1,".' [198]000 54 4[198] 4[198] 20 4[196] 41 4[197] 59[212][207][207] [205][193][206][217][146]"
1090 PRINT#1,".' [198]008 20 46 49 4[195] 45 [196]3 46 49 [198][201][204][197][211][198][201][146]":PRINT#1
1100 PRINT#1," [196]ISPLAYS HEX AND [193][211][195][201][201] UNTIL THE END ";
1110 PRINT#1,"OF MEMORY.":PRINT#1
1120 PRINT#1,".[201] [198]000 [198]080":PRINT#1
1130 PRINT#1," [196]ISPLAYS HEX AND [193][211][195][201][201] FROM $[198]000 TO ";
1140 PRINT#1,"$[198]080.":PRINT#1
1150 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1160 IFDV=3THENGETA$:IFA$=""THEN1160
1170 IFDV=3THENPRINT"[147]"
1180 PRINT#1,"[204]OAD":PRINT#1
1190 PRINT#1,".[204]"+CHR$(34)+"FILENAME"+CHR$(34):PRINT#1
1200 PRINT#1," [204]OADS A FILE FROM THE CASSETTE UNIT.":PRINT#1
1210 PRINT#1,".[204]"+CHR$(34)+"FILENAME"+CHR$(34)+",08":PRINT#1
1220 PRINT#1," [204]OADS A FILE FROM THE DISK DRIVE.":PRINT#1
1230 PRINT#1," [194][197][215][193][210][197]: [204]OAD WITH A FILE NAME ";
1240 PRINT#1,"BREAKS THE [201][210][209] SAVED BY THE MONITOR. ";
1250 PRINT#1,"[196]O NOT USE .[199] TO THE [208][195] REGISTER AFTER ";
1260 PRINT#1,"A LOAD WITH A FILENAME.":PRINT#1
1270 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1280 IFDV=3THENGETA$:IFA$=""THEN1280
1290 IFDV=3THENPRINT"[147]"
1300 PRINT#1,"[205]EMORY [196]ISPLAY":PRINT#1
1310 PRINT#1,".[205] 0000 0008":PRINT#1
1320 PRINT#1,".: 0000 00 01 [193]0 [194]3 4[196] 5[195] [198]6 [197]7"
1330 PRINT#1,".: 0008 28 49 8[193] 4[194] 5[195] 7[196] 0[197] 3[198]":PRINT#1
1340 PRINT#1," [196]ISPLAY MEMORY FROM $0000 TO $0008. ";
1350 PRINT#1,"[212]HE BYTES FOLLOWING THE ADDRESS MAY BE ";
1360 PRINT#1,"MODIFIED BY EDITING AND THEN PRESSING ";
1370 PRINT#1,"[[210][197][212][213][210][206]].":PRINT#1
1380 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1390 IFDV=3THENGETA$:IFA$=""THEN1390
1400 IFDV=3THENPRINT"[147]"
1410 PRINT#1,"[206]EW [204]OCATOR":PRINT#1
1420 PRINT#1,".[206] 7000 77[198][198] 6000 0400 9000":PRINT#1
1430 PRINT#1,".[206] 77[195][196] 77[198][198] 6000 0400 9000 [215]":PRINT#1
1440 PRINT#1," [212]HE FIRST LINE FIXES ALL THREE BYTE ";
1450 PRINT#1,"INSTRUCTIONS IN THE RANGE $7000 TO ";
1460 PRINT#1,"$77[198][198] BY ADDING $6000 OFFSET TO THE ";
1470 PRINT#1,"BYTES FOLLOWING THE INSTRUCTION. [206]EW ";
1480 PRINT#1,"LOCATOR WILL NOT ADJUST ANY INSTRUCTION ";
1490 PRINT#1,"OUTSIDE OF THE $0400 TO $[195]000 RANGE. ";
1500 PRINT#1,"[212]HE SECOND LINE ADJUSTS .WORD VALUES IN ";
1510 PRINT#1,"THE SAME RANGE AS THE FIRST LINE. [206]EW ";
1520 PRINT#1,"LOCATOR STOPS AND DISASSEMBLES ON ANY ";
1530 PRINT#1,"BAD OP CODE.":PRINT#1
1540 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1550 IFDV=3THENGETA$:IFA$=""THEN1550
1560 IFDV=3THENPRINT"[147]"
1570 IFDV=4THENFORQ=1TO8:PRINT#1:NEXT
1580 PRINT#1,"[210]EGISTER [196]ISPLAY":PRINT#1
1590 PRINT#1,".[210]":PRINT#1
1600 PRINT#1," [208][195] [201][210][209] [211][210] [193][195] [216][210] [217][210] [211][208]"
1610 PRINT#1,".; 0000 [197]62[197] 51 [196][197] 03 04 05":PRINT#1
1620 PRINT#1," [196]ISPLAYS THE REGISTER VALUES. [212]HE ";
1630 PRINT#1,"VALUES MAY BE CHANGED BY EDITING THEM ";
1640 PRINT#1,"AND PRESSING [[210][197][212][213][210][206]].":PRINT#1
1650 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1660 IFDV=3THENGETA$:IFA$=""THEN1660
1670 IFDV=3THENPRINT"[147]"
1680 PRINT#1,"[211]AVE":PRINT#1
1690 PRINT#1,".[211]"+CHR$(34)+"FILENAME"+CHR$(34)+",01,0800,0[195]80":PRINT#1
1700 PRINT#1," [211]AVE TO CASSETTE THE CONTENTS OF ";
1710 PRINT#1,"LOCATIONS $0800 UP TO (NOT INCLUDING) ";
1720 PRINT#1,"$0[195]80.":PRINT#1
1730 PRINT#1,".[211]"+CHR$(34)+"FILENAME"+CHR$(34)+",08,0800,0[195]80":PRINT#1
1740 PRINT#1," [211]AVE TO DISKETTE THE CONTENTS OF ";
1750 PRINT#1,"LOCATIONS $0800 UP TO (NOT INCLUDING) ";
1760 PRINT#1,"$0[195]80.":PRINT#1
1770 PRINT#1," [194][197][215][193][210][197]: [211]AVE TO TAPE WITH FILENAME ";
1780 PRINT#1,"BREAKS THE [201][210][209] SAVED BY THE MONITOR.":PRINT#1
1790 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1800 IFDV=3THENGETA$:IFA$=""THEN1800
1810 IFDV=3THENPRINT"[147]"
1820 PRINT#1,"[212]RANSFER [205]EMORY":PRINT#1
1830 PRINT#1,".[212] 1000 1100 5000":PRINT#1
1840 PRINT#1," [212]RANSFER MEMORY IN THE RANGE $1000 ";
1850 PRINT#1,"TO $1100 AND START STORING IT AT $5000.":PRINT#1
1860 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
1870 IFDV=3THENGETA$:IFA$=""THEN1870
1880 IFDV=3THENPRINT"[147]"
1890 PRINT#1,"[215]ALK [195]ODE":PRINT#1
1900 PRINT#1,".[215]":PRINT#1
1910 PRINT#1," [211]INGLE STEP STARTING AT THE ADDRESS ";
1920 PRINT#1,"IN THE [208][195].":PRINT#1
1930 PRINT#1,".[215] 1000":PRINT#1
1940 PRINT#1," [211]INGLE STEP STARTING AT $1000. [215]ALK ";
1950 PRINT#1,"WILL CAUSE A SINGLE STEP TO EXECUTE AND ";
1960 PRINT#1,"WILL DISASSEMBLE THE NEXT INSTRUCTION. ";
1970 PRINT#1,"[211]TEP SPEED MAY BE CONTROLLED WITH [<] ";
1980 PRINT#1,"FOR [211][201][206][199][204][197][160][211][212][197][208], [[210][214][211]] FOR [211][204][207][215], AND ";
1990 PRINT#1,"[[211][208][193][195][197]] FOR [198][193][211][212].":PRINT#1
2000 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
2010 IFDV=3THENGETA$:IFA$=""THEN2010
2020 IFDV=3THENPRINT"[147]"
2030 PRINT#1,"[197]XIT TO [194][193][211][201][195]":PRINT#1
2040 PRINT#1,".[216]":PRINT#1
2050 PRINT#1," [210]ETURN TO [194][193][211][201][195] READY MODE. [212]HE ";
2060 PRINT#1,"STACK VALUE SAVED WHEN ENTERED WILL BE ";
2070 PRINT#1,"RESTORED. [195]ARE SHOULD BE TAKEN THAT ";
2080 PRINT#1,"THIS VALUE IS THE SAME AS WHEN THE ";
2090 PRINT#1,"MONITOR WAS ENTERED. [193] [195][204][210] OR ANYTHING ";
2100 PRINT#1,"THAT WOULD CAUSE A [211][217][206][212][193][216] [197][210][210][207][210] IN ";
2110 PRINT#1,"[194][193][211][201][195] WILL FIX ANY STACK PROBLEMS.":PRINT#1
2120 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
2130 IFDV=3THENGETA$:IFA$=""THEN2130
2140 IFDV=3THENPRINT"[147]"
2150 PRINT#1,"[208]RINTED [207]UTPUT":PRINT#1
2160 PRINT#1," [208]RINTED OUTPUT CAN BE OBTAINED FROM ";
2170 PRINT#1,"ANY [197][216][212][210][193][205][207][206] COMMAND BY TYPING A '*'. "
2180 PRINT#1
2190 PRINT#1:CLOSE1
2200 PRINT" [212]HAT CONCLUDES THE INSTRUCTIONS.[146]"
2210 PRINT"[208][210][197][211][211] [193][206][217] [203][197][217] [212][207] [195][207][206][212][201][206][213][197]"
2220 GETW$:IFW$=""THEN2220
2230 PRINTCHR$(14)"[147] [196][207] [217][207][213] [215][201][211][200] [212][207]: "
2240 PRINT"1. [210][213][206] [211][213][208][197][210] [193][201][196]"
2250 PRINT"2. [211][197][197] [196][197][212][193][201][204][197][196] [212][201][206][217] [193][201][196] [208][204][213][211]"
2260 PRINT" [201][206][211][212][210][213][195][212][201][207][206][211]"
2270 PRINT"3. [211][197][197] [211][213][208][197][210] [193][201][196] [199][197][206][197][210][193][204] [195][207][205][205][197][206][212][211]
2280 [153]"4. (null)VALVAL (null)(null)(null)VAL(null) STR$(null)(null) RIGHT$(null)(null)(null)(null)(null)LEN(null)RIGHT$(null)(null)(null)"
2290 [153]"5. (null)VALVAL (null)VALSTR$CHR$VAL RIGHT$(null)(null)(null)(null)(null)LEN(null)RIGHT$(null)(null)(null)"
2300 [153]"6. VAL(null)RIGHT$(null) (null)LEFT$VAL (null)(null)(null)CHR$(null)ATN(null)"
2310 [153]"VALNTER YOUR NUMBER OF CHOICE"
2320 [161]W$:[139]W$[178]""[167]2320
2330 [139]W$[179][177]"1"[175]W$[179][177]"2"[175]W$[179][177]"3"[175]W$[179][177]"4"[175]W$[179][177]"5"[175]W$[179][177]"6"[167]2320
2340 W[178][197](W$):[139]W[178]6[167][153]"LOADVERIFY"[199](142):[162]:[128]
2350 [139]W[178]1[167]NP$[178]"SUPER.AID.C"
2360 [139]W[178]2[167]NP$[178]"TAP.INST.D"
2370 [139]W[178]3[167]NP$[178]"S.A.COMMENTS.D"
2380 [139]W[178]4[167]NP$[178]"SUPER.DOS.INST.D"
2390 [139]W[178]5[167]NP$[178]"WEDGE.INST.D"
2400 [153]"LOADSTOPLOAD"[199](34)NP$[199](34)",8"
2410 [151]198,4:[151]631,13:[151]632,82:[151]633,213:[151]634,13
2420 [153][199](142)"VERIFY(null)LENLENLENLENLENLENLENLENLENLENLENRIGHT$"
2430 [153][199](142)"VERIFY(null)WAITPLEASE WAITVERIFY(null)"
2440 [153][199](142)"VERIFYMID$LENLENLENLENLENLENLENLENLENLENLEN(null)WAITSTOP":[128]